// 引入request
import request from "@/utils/request";

// 引入类型
import type { SkuModel, SkuListModel, SkuPageListParamsModel } from "./model/skuModel";

// 定义枚举类型的接口地址
enum API {
  // 下架
  CancelSale = "/admin/product/cancelSale",
  // 上架
  OnSale = "/admin/product/onSale/",
  // 删除sku
  DeleteSkuById = "/admin/product/deleteSku",
  // 根据spu的id查找对象的列表地址
  GetSkuInfoListBySpuId = "/admin/product/findBySpuId",
  // 根据sku的id获取sku对象的地址
  GetSkuInfoBySkuId = "/admin/product/getSkuById",
  // 根据关键字获取sku列表数据的地址
  GetSkuInfoListByKeyword = "/admin/product/inner/findSkuInfoByKeyword",
  // 根据sku的id数组获取sku列表数据地址
  GetSkuInfoListBySkuIds = "/admin/product/inner/findSkuInfoBySkuIdList",
  // 根据页码和条数获取SKu列表数据的地址
  GetSkuInfoList = "/admin/product/list",
  // 添加
  AddSkuInfo = "/admin/product/saveSkuInfo",
  // 修改
  UpdateSkuInfo = "/admin/product/updateSkuInfo",
}

// 下架
export const reqCancelSale = (skuId: number) => request.get<any, null>(API.CancelSale + `/${skuId}`);
// 上架
export const reqOnSale = (skuId: number) => request.get<any, null>(API.OnSale + `/${skuId}`);
// 删除sku
export const reqDeleteSkuById = (skuId: number) => request.delete<any, null>(API.DeleteSkuById + `/${skuId}`);
// 根据spu的id查找对象的列表地址
export const reqGetSkuInfoListBySpuId = (spuId: number) => request.get<any, SkuListModel>(API.GetSkuInfoListBySpuId + `/${spuId}`);
// 根据sku的id获取sku对象的地址
export const reqGetSkuInfoBySkuId = (skuId: number) => request.get<any, SkuModel>(API.GetSkuInfoBySkuId + `/${skuId}`);
// 根据关键字获取sku列表数据的地址
export const reqGetSkuInfoListByKeyword = (keyword: string) => request.get<any, SkuListModel>(API.GetSkuInfoListByKeyword + `/${keyword}`);
// 根据sku的id数组获取sku列表数据地址
export const reqGetSkuInfoListBySkuIds = (ids: number[]) => request.post<any, SkuListModel>(API.GetSkuInfoListBySkuIds, ids);
// 根据页码和条数获取SKu列表数据的地址
export const reqGetSkuInfoList = (page: number, limit: number) => request.get<any, SkuPageListParamsModel>(API.GetSkuInfoList + `/${page}/${limit}`);
// 添加
export const reqAddSkuInfo = (skuInfo: SkuModel) => request.post<any, null>(API.AddSkuInfo, skuInfo);
// 修改
export const reqUpdateSkuInfo = (skuInfo: SkuModel) => request.post<any, null>(API.UpdateSkuInfo, skuInfo);
